package com.asiainfo.ncrm.base;

import java.io.File;

import com.asiainfo.ncrm.ant.AntApplication;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.nostra13.universalimageloader.utils.StorageUtils;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ImageView;

public class LoadImage {

	public static ImageLoaderConfiguration  config() {
		Context context=AntApplication.getApplication();
		ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(context);
		File cacheDir = StorageUtils.getCacheDirectory(context);  //缓存文件夹路径
		ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
		        .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 内存缓存文件的最大长宽
//		        .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽)，最好不要设置这个 
//		        .taskExecutorForCachedImages(...)
		        .threadPoolSize(3) // default  线程池内加载的数量
		        .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级
		        .tasksProcessingOrder(QueueProcessingType.FIFO) // default
		        .denyCacheImageMultipleSizesInMemory()
		        .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
		        .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值
		        .memoryCacheSizePercentage(13) // default
		        .diskCache(new UnlimitedDiskCache(cacheDir)) // default 可以自定义缓存路径  
		        .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
		        .diskCacheFileCount(100)  // 可以缓存的文件数量 
		        // default为使用HASHCODE对UIL进行加密命名， 还可以用MD5(new Md5FileNameGenerator())加密
		        .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
		        .imageDownloader(new BaseImageDownloader(context)) // default
//		        .imageDecoder(new BaseImageDecoder(false)) // default
		        .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
//		        .writeDebugLogs() // 打印debug log
		        .build(); //开始构建
		return config;
	}
	
//	public static DisplayImageOptions options{
//		DisplayImageOptions options;  
//		options = new DisplayImageOptions.Builder()  
//		 .showImageOnLoading(R.drawable.ic_launcher) //设置图片在下载期间显示的图片  
//		 .showImageForEmptyUri(R.drawable.ic_launcher)//设置图片Uri为空或是错误的时候显示的图片  
//		.showImageOnFail(R.drawable.ic_launcher)  //设置图片加载/解码过程中错误时候显示的图片
//		.cacheInMemory(true)//设置下载的图片是否缓存在内存中  
//		.cacheOnDisc(true)//设置下载的图片是否缓存在SD卡中  
//		.considerExifParams(true)  //是否考虑JPEG图像EXIF参数（旋转，翻转）
//		.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)//设置图片以如何的编码方式显示  
//		.bitmapConfig(Bitmap.Config.RGB_565)//设置图片的解码类型//  
//		.decodingOptions(android.graphics.BitmapFactory.Options decodingOptions)//设置图片的解码配置  
//		//.delayBeforeLoading(int delayInMillis)//int delayInMillis为你设置的下载前的延迟时间
//		//设置图片加入缓存前，对bitmap进行设置  
//		//.preProcessor(BitmapProcessor preProcessor)  
//		.resetViewBeforeLoading(true)//设置图片在下载前是否重置，复位  
//		.displayer(new RoundedBitmapDisplayer(20))//是否设置为圆角，弧度为多少  
//		.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间  
//		.build();//构建完成  
//		return options;
//	}
	public void s(){
		Context context=AntApplication.getApplication();
		ImageLoader.getInstance().displayImage("", new ImageView(context), new ImageLoadingListener() {
			
			@Override
			public void onLoadingStarted(String arg0, View arg1) {
				
			}
			
			@Override
			public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
				
			}
			
			@Override
			public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
				
			}
			
			@Override
			public void onLoadingCancelled(String arg0, View arg1) {
				
			}
		});
	}
	
	

}
